else if ((filename_is_drive_root (volume->drive) && volume->drive[0] >= 'C') ||
volume->drive_type != DRIVE_REMOVABLE)
{
- gunichar2 *wdrive = g_utf8_to_utf16 (volume->drive, -1, NULL, NULL, NULL);
- gunichar2 wname[80];
- if (GetVolumeInformationW (wdrive,
- wname, G_N_ELEMENTS(wname),
- NULL, /* serial number */
- NULL, /* max. component length */
- NULL, /* fs flags */
- NULL, 0) /* fs type like FAT, NTFS */ &&
- wname[0])
+ gchar *name = NULL;
+ if (G_WIN32_HAVE_WIDECHAR_API ())
{
- gchar *name = g_utf16_to_utf8 (wname, -1, NULL, NULL, NULL);
+ gunichar2 *wdrive = g_utf8_to_utf16 (volume->drive, -1, NULL, NULL, NULL);
+ gunichar2 wname[80];
+ if (GetVolumeInformationW (wdrive,
+ wname, G_N_ELEMENTS(wname),
+ NULL, /* serial number */
+ NULL, /* max. component length */
+ NULL, /* fs flags */
+ NULL, 0) /* fs type like FAT, NTFS */ &&
+ wname[0])
+ {
+ name = g_utf16_to_utf8 (wname, -1, NULL, NULL, NULL);
+ }
+ g_free (wdrive);
+ }
+ else
+ {
+ gchar *cpdrive = g_locale_from_utf8 (volume->drive, -1, NULL, NULL, NULL);
+ gchar cpname[80];
+ if (GetVolumeInformationA (cpdrive,
+ cpname, G_N_ELEMENTS(cpname),
+ NULL, /* serial number */
+ NULL, /* max. component length */
+ NULL, /* fs flags */
+ NULL, 0) /* fs type like FAT, NTFS */ &&
+ cpname[0])
+ {
+ name = g_locale_to_utf8 (cpname, -1, NULL, NULL, NULL);
+ }
+ g_free (cpdrive);
+ }
+ if (name != NULL)
+ {
real_display_name = g_strdup_printf (_("%s (%s)"), name, volume->drive);
g_free (name);
}
else
- real_display_name = g_strdup (volume->drive);
- g_free (wdrive);
+ {
+ real_display_name = g_strdup (volume->drive);
+ }
}
else
real_display_name = g_strdup (volume->drive);
printf("canonicalize_filename: %s ", filename);
#endif
- past_root = g_path_skip_root (filename);
+ past_root = (gchar *) g_path_skip_root (filename);
q = p = past_root;
}
if (!icon_set)
- if (g_file_test (filename, G_FILE_TEST_IS_EXECUTABLE))
- icon_set = gtk_style_lookup_icon_set (widget->style, GTK_STOCK_EXECUTE);
- else
- icon_set = gtk_style_lookup_icon_set (widget->style, GTK_STOCK_FILE);
+ {
+ if (g_file_test (filename, G_FILE_TEST_IS_EXECUTABLE))
+ icon_set = gtk_style_lookup_icon_set (widget->style, GTK_STOCK_EXECUTE);
+ else
+ icon_set = gtk_style_lookup_icon_set (widget->style, GTK_STOCK_FILE);
+ }
// FIXME : I'd like to get from pixel_size (=20) back to
// icon size, which is an index, but there appears to be no way ?